﻿/// <reference path="../../../amplify-vsdoc.js" />
/// <reference path="../../../amplify.js" />
/// <reference path="../../../helpers/validationHelper.js" />
YUI.add('agregar-curso-view', function (Y) {
    'use strict';
    Y.AgregarCursoView = Y.Base.create('AgregarCursoView', Y.View, [], {
        templateIsCharged: false,
        loadTemplate: function () {
            if (this.template == '') {
                var that = this,
                validator = null,
                request = Y.io('/ExcellentProject/scripts/views/calificaciones/cursos/templates/asistenteAgregarCurso.html', {
                    on: {
                        complete: function (id, response) {
                            that.templateIsCharged = true;
                            that.template = response.responseText;
                            that.render();
                        }
                    },
                    failure: function (id, response) {
                        alert(response)
                    }
                })
            }
        },
        events: {
            '.nextstep': {
                click: 'guardarCurso'
            },
            'cancelEvent': {
                click: 'cancelar'
            }
        },

        render: function () {
            this.loadTemplate();
            if (this.templateIsCharged) {
                var contentTemplate = Y.Handlebars.compile(this.template);

                this.get('container').setHTML(contentTemplate(Y.merge(this.get('model').getAttrs(),
                    { PeriodosVigentes: this.get('periodos').toJSON() })
                    ));
                if (this.get('model').get('Id') != 0) {
                    Y.one('#periodo').set('value', this.get('model').get('IdPeriodo'))
                    Y.one('#estado').set('value', this.get('model').get('Estado'))
                }
            }
            $('#inputNombre').alphanum();
            $('#inputDescripcion').alphanum();
        },


        guardarCurso: function (ev) {
            if (ev.preventDefault)
                ev.preventDefault();
            else
                ev.returnValue = false;
            var model = this.get('model');

            var requiredMessages = '';

            //validacion de campos requeridos
            if (Y.one('#nombre').get('value').trim() == '') {
                Y.one('#nombreGroup').removeClass('has-success')
                Y.one('#nombreGroup').toggleClass('has-error', true)
                requiredMessages = ' - Nombre requerido. Ingrese el Nombre correctamente.<br/>';

            } else {
                Y.one('#nombreGroup').removeClass('has-error')
                Y.one('#nombreGroup').toggleClass('has-success', true)
            }

            if (Y.one('#descripcion').get('value').trim() == '') {
                Y.one('#descripcionGroup').removeClass('has-success')
                Y.one('#descripcionGroup').toggleClass('has-error', true)
                requiredMessages = ' - Descripción requerida. <br/>';

            } else {
                Y.one('#descripcionGroup').removeClass('has-error')
                Y.one('#descripcionGroup').toggleClass('has-success', true)
            }


            if (requiredMessages != '') {
                bootbox.dialog({
                    message: requiredMessages,
                    title: "Problemas de Validación",
                    show: true,
                    backdrop: true,
                    closeButton: true,
                    animate: true,

                    className: "my-modal",
                    buttons: {
                        success: {
                            label: "Ok",
                            className: "btn btn-info",

                            callback: function () { }
                        }
                    }
                });
                return;
            }

            model.setAttrs({
                IdCurso: Y.one('#id').get('value').trim(),
                Nombre: Y.one('#nombre').get('value').trim(),
                Descripcion: Y.one('#descripcion').get('value').trim(),
                Estado: Y.one('#estado').get('value').trim(),
                IdPeriodo: Y.one('#periodo').get('value')
            });

            amplify.store('cursoModel', model)


            Y.one('#navigationButton').set('href', '/curso/docentes')
            Y.one('#navigationButton').simulate("click");
        },

        cancelar: function (ev) {
            if (ev.preventDefault)
                ev.preventDefault();
            else
                ev.returnValue = false;
            localStorage.removeItem('cursoModel')
            Y.one('#navigationButton').set('href', '/cursos')
            Y.one('#navigationButton').simulate("click");
        }
    })

}, '0.0.0.1', { requires: ['view', 'handlebars', 'node', 'event', 'node-event-simulate', 'json-stringify', 'json-parse', 'periodo-model'] })